문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 고차 함수 (문단 편집) ==== 고차 함수 정의 및 사용 ==== 각 수열을 계산하는 부분을 고차 함수을 이용해 정의하였다. {{{#!syntax cpp #include #include #include using namespace std; using namespace placeholders; constexpr size_t mersenne(const size_t &); constexpr bool is_prime(const size_t &, const size_t & = 3); template vector map(const vector &, const function &); template vector filter(const vector &, const function &); int main(int argc, const char **argv) { const vector natural_sequence = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; auto mersenne_sequence = map(natural_sequence, function(mersenne)); auto prime_sequence = filter(mersenne_sequence, function(bind(is_prime, _1, 3))); for (const auto &i : prime_sequence) { cout << i << endl; // 3, 7, 31, 127 } return 0; } constexpr size_t mersenne(const size_t &n) { return n > 0 ? 2 * mersenne(n - 1) + 1 : 0; } constexpr bool is_prime(const size_t &n, const size_t &i) { return n > 1 ? n & 1 ? n % i || i * i > n ? i * i > n ? true : is_prime(n, i + 2) : false : n == 2 : false; } template vector map(const vector &sequence, const function &fx) { vector mapped; for (const type &i : sequence) { mapped.push_back(fx(i)); } return mapped; } template vector filter(const vector &sequence, const function &fx) { vector filtered; for (const type &i : sequence) { if (!fx(i)) { continue; } filtered.push_back(i); } return filtered; } }}} [[분류:프로그래밍]][[분류:프로그래밍 이론]][[분류:컴퓨터 공학]]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기